package moc.egg;
import moc.compiler.*;
import moc.tds.*;
import moc.type.*;
import moc.gc.*;
import java.util.*;
import mg.egg.eggc.runtime.libjava.lex.*;
import mg.egg.eggc.runtime.libjava.*;
import mg.egg.eggc.runtime.libjava.messages.*;
import mg.egg.eggc.runtime.libjava.problem.IProblem;
import java.util.Vector;
public class S_F_MOC {
LEX_MOC scanner;
  S_F_MOC() {
    }
  S_F_MOC(LEX_MOC scanner, boolean eval) {
    this.scanner = scanner;
    this.att_eval = eval;
    this.att_scanner = scanner;
    }
int [] sync= new int[0];
  boolean att_gauche;
  boolean att_eval;
  String att_code;
  IMachine att_machine;
  DTYPE att_type;
  TDS att_tds;
  LEX_MOC att_scanner;
  private void regle62() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    S_E_MOC x_3 = new S_E_MOC(scanner,att_eval) ;
    T_MOC x_4 = new T_MOC(scanner ) ;
    //appel
if  (att_eval)      action_auto_inh_62(x_3);
    x_2.analyser(LEX_MOC.token_paro);
    x_3.analyser() ;
    x_4.analyser(LEX_MOC.token_parf);
if  (att_eval)      action_type_62(x_3);
  }
  private void regle63() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    S_TYPE_MOC x_3 = new S_TYPE_MOC(scanner,att_eval) ;
    T_MOC x_4 = new T_MOC(scanner ) ;
    S_F_MOC x_5 = new S_F_MOC(scanner,att_eval) ;
    //appel
if  (att_eval)      action_auto_inh_63(x_3, x_5);
    x_2.analyser(LEX_MOC.token_paro);
    x_3.analyser() ;
    x_4.analyser(LEX_MOC.token_parf);
    x_5.analyser() ;
if  (att_eval)      action_type_63(x_3, x_5);
  }
  private void regle61() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    //appel
    x_2.analyser(LEX_MOC.token_null);
if  (att_eval)      action_type_61();
  }
  private void regle66() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    S_F_MOC x_4 = new S_F_MOC(scanner,att_eval) ;
    //appel
if  (att_eval)      action_auto_inh_66(x_4);
    x_2.analyser(LEX_MOC.token_mult);
if  (att_eval)      action_sens_66(x_4);
    x_4.analyser() ;
if  (att_eval)      action_type_66(x_4);
  }
  private void regle67() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    S_TYPE_MOC x_3 = new S_TYPE_MOC(scanner,att_eval) ;
    T_MOC x_4 = new T_MOC(scanner ) ;
    T_MOC x_5 = new T_MOC(scanner ) ;
    //appel
if  (att_eval)      action_auto_inh_67(x_3);
    x_2.analyser(LEX_MOC.token_new);
    x_3.analyser() ;
    x_4.analyser(LEX_MOC.token_paro);
    x_5.analyser(LEX_MOC.token_parf);
if  (att_eval)      action_code_67(x_3);
  }
  private void regle57() throws Exception {

    //declaration
    S_OPUN_MOC x_2 = new S_OPUN_MOC(scanner,att_eval) ;
    S_F_MOC x_3 = new S_F_MOC(scanner,att_eval) ;
    //appel
if  (att_eval)      action_auto_inh_57(x_2, x_3);
    x_2.analyser() ;
    x_3.analyser() ;
if  (att_eval)      action_code_57(x_2, x_3);
  }
  private void regle64() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    T_MOC x_3 = new T_MOC(scanner ) ;
    S_ARGS_MOC x_4 = new S_ARGS_MOC(scanner,att_eval) ;
    T_MOC x_5 = new T_MOC(scanner ) ;
    //appel
if  (att_eval)      action_auto_inh_64(x_2, x_4);
    x_2.analyser(LEX_MOC.token_ident);
    x_3.analyser(LEX_MOC.token_paro);
    x_4.analyser() ;
    x_5.analyser(LEX_MOC.token_parf);
if  (att_eval)      action_type_64(x_2, x_4);
  }
  private void regle65() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    //appel
    x_2.analyser(LEX_MOC.token_ident);
if  (att_eval)      action_code_65(x_2);
  }
  private void regle54() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    //appel
    x_2.analyser(LEX_MOC.token_entier);
if  (att_eval)      action_code_54(x_2);
  }
  private void regle68() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    T_MOC x_3 = new T_MOC(scanner ) ;
    S_E_MOC x_5 = new S_E_MOC(scanner,att_eval) ;
    T_MOC x_6 = new T_MOC(scanner ) ;
    //appel
if  (att_eval)      action_auto_inh_68(x_2, x_5);
    x_2.analyser(LEX_MOC.token_ident);
    x_3.analyser(LEX_MOC.token_cro);
if  (att_eval)      action_sens_68(x_2, x_5);
    x_5.analyser() ;
    x_6.analyser(LEX_MOC.token_crf);
if  (att_eval)      action_code_68(x_2, x_5);
  }
  private void regle56() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    //appel
    x_2.analyser(LEX_MOC.token_caractere);
if  (att_eval)      action_type_56(x_2);
  }
  private void regle55() throws Exception {

    //declaration
    T_MOC x_2 = new T_MOC(scanner ) ;
    //appel
    x_2.analyser(LEX_MOC.token_chaine);
if  (att_eval)      action_type_55(x_2);
  }
private void action_sens_66(S_F_MOC x_4) throws Exception {
try {
// instructions
x_4.att_gauche=false;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#sens","F -> mult #sens F1 #type ;"});
}
  }
private void action_type_56(T_MOC x_2) throws Exception {
try {
// instructions
this.att_type= new CHARTYPE();
this.att_code=this.att_machine.genConstante(x_2.att_txt);
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#type","F -> caractere #type ;"});
}
  }
private void action_auto_inh_63(S_TYPE_MOC x_3, S_F_MOC x_5) throws Exception {
try {
// instructions
x_5.att_tds=this.att_tds;
x_5.att_gauche=this.att_gauche;
x_3.att_machine=this.att_machine;
x_5.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","F -> paro TYPE parf F1 #type ;"});
}
  }
private void action_type_66(S_F_MOC x_4) throws Exception {
try {
// locales
DTYPE loc_t;
// instructions
loc_t=x_4.att_type;
if (loc_t instanceof POINTEURTYPE ){
this.att_type=((POINTEURTYPE)loc_t).typePointe();
if ((this.att_gauche)){
this.att_code=x_4.att_code+this.att_machine.genEnregistrementMemoire(x_4.att_type.getTaille());
}
else {
this.att_code=x_4.att_code+this.att_machine.genChargmentMemoire(x_4.att_type.getTaille());
}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_NON_POINTER_TYPE, MOCMessages.NON_POINTER_TYPE,new Object[]{""+x_4.att_type});


}
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#type","F -> mult #sens F1 #type ;"});
}
  }
private void action_auto_inh_62(S_E_MOC x_3) throws Exception {
try {
// instructions
x_3.att_tds=this.att_tds;
x_3.att_gauche=this.att_gauche;
x_3.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","F -> paro E parf #type ;"});
}
  }
private void action_sens_68(T_MOC x_2, S_E_MOC x_5) throws Exception {
try {
// instructions
x_5.att_gauche=false;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#sens","F -> ident cro #sens E crf #code ;"});
}
  }
private void action_type_55(T_MOC x_2) throws Exception {
try {
// instructions
this.att_type= new POINTEURTYPE( new CHARTYPE());
this.att_code=this.att_machine.genConstante(x_2.att_txt)+";;SUBR SAlloc;n'a pas l'air de marcher  \n";
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#type","F -> chaine #type ;"});
}
  }
private void action_auto_inh_64(T_MOC x_2, S_ARGS_MOC x_4) throws Exception {
try {
// instructions
x_4.att_tds=this.att_tds;
x_4.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","F -> ident paro ARGS parf #type ;"});
}
  }
private void action_auto_inh_67(S_TYPE_MOC x_3) throws Exception {
try {
// instructions
x_3.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","F -> new TYPE paro parf #code ;"});
}
  }
private void action_type_61() throws Exception {
try {
// locales
DTYPE loc_t;
// instructions
loc_t= new NULL();
this.att_type=loc_t;
this.att_code="LOADL 0 ; SUBR MVoid semble plus convenable mais bug ; pointeur nul\n";
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#type","F -> null #type ;"});
}
  }
private void action_auto_inh_66(S_F_MOC x_4) throws Exception {
try {
// instructions
x_4.att_tds=this.att_tds;
x_4.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","F -> mult #sens F1 #type ;"});
}
  }
private void action_auto_inh_57(S_OPUN_MOC x_2, S_F_MOC x_3) throws Exception {
try {
// instructions
x_3.att_tds=this.att_tds;
x_3.att_gauche=this.att_gauche;
x_2.att_machine=this.att_machine;
x_3.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","F -> OPUN F1 #code ;"});
}
  }
private void action_type_62(S_E_MOC x_3) throws Exception {
try {
// instructions
this.att_type=x_3.att_type;
this.att_code=x_3.att_code;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#type","F -> paro E parf #type ;"});
}
  }
private void action_type_63(S_TYPE_MOC x_3, S_F_MOC x_5) throws Exception {
try {
// instructions
if (x_5.att_type.conforms(x_3.att_type)){
this.att_machine.debug("type"+x_3.att_type.toString(), "F"+x_5.att_type.toString());
this.att_type=x_3.att_type;
this.att_code=x_5.att_code;
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_CAST_ERROR, MOCMessages.CAST_ERROR,new Object[]{""+x_5.att_type.toString(), ""+x_3.att_type.toString()});

}
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#type","F -> paro TYPE parf F1 #type ;"});
}
  }
private void action_auto_inh_68(T_MOC x_2, S_E_MOC x_5) throws Exception {
try {
// instructions
x_5.att_tds=this.att_tds;
x_5.att_machine=this.att_machine;
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#auto_inh","F -> ident cro #sens E crf #code ;"});
}
  }
private void action_type_64(T_MOC x_2, S_ARGS_MOC x_4) throws Exception {
try {
// locales
INFO loc_info;
SIGNATURE loc_sig;
TDS loc_tds;
Class loc_c;
DTYPE loc_t;
// instructions
loc_info=this.att_tds.chercherGlobalement(x_2.att_txt);
if ((loc_info!=null)){
if (loc_info instanceof INFOFUN ){
loc_sig=((INFOFUN)loc_info).getSignature();
if ((loc_sig.signatureConfomes(x_4.att_signatureAppel))){
loc_t=((INFOFUN)loc_info).getReturnType();
this.att_type=loc_t;
this.att_code=x_4.att_code+"CALL (SB) _"+x_2.att_txt+" \n";
this.att_code=x_4.att_code+this.att_machine.genAppelFonction(x_2.att_txt, loc_t, x_4.att_taille);
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_SignaturesNonConforme, MOCMessages.SignaturesNonConforme,new Object[]{""+x_2.att_txt});

}
}
else {
loc_c=loc_info.getClass();
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_PasFonction, MOCMessages.PasFonction,new Object[]{""+loc_c.getName()});


}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_fn_non_definie, MOCMessages.fn_non_definie,new Object[]{""+x_2.att_txt});

}
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#type","F -> ident paro ARGS parf #type ;"});
}
  }
private void action_code_54(T_MOC x_2) throws Exception {
try {
// locales
// instructions
this.att_type= new INTEGERTYPE();
this.att_code=this.att_machine.genConstante(x_2.att_txt);
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#code","F -> entier #code ;"});
}
  }
private void action_code_68(T_MOC x_2, S_E_MOC x_5) throws Exception {
try {
// locales
INFO loc_i;
DTYPE loc_t;
DTYPE loc_t1;
DTYPE loc_t2;
String loc_code;
// instructions
loc_i=this.att_tds.chercherGlobalement(x_2.att_txt);
if (loc_i!=null){
if (loc_i instanceof INFOVAR ){
loc_t=((INFOVAR)loc_i).getType();
if (loc_t instanceof ARRAYTYPE ){
if (x_5.att_type instanceof ROWTYPE ){
this.att_type=((ARRAYTYPE)loc_t).getType();
loc_code=this.att_machine.genChargementAdresse(((INFOVAR)loc_i));
loc_code=loc_code+x_5.att_code+"SUBR IADD ; \n";
loc_t1=((ARRAYTYPE)loc_t).getType();
if ((this.att_gauche)){
this.att_code=loc_code+this.att_machine.genEnregistrementMemoire(loc_t1.getTaille());
}
else {
this.att_code=loc_code+this.att_machine.genChargmentMemoire(loc_t1.getTaille());
}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_indice_range, MOCMessages.indice_range,new Object[]{""+x_5.att_type.toString()});


}
}
else if (loc_t instanceof POINTEURTYPE ){
loc_t2=((POINTEURTYPE)loc_t).typePointe();
if (loc_t2 instanceof ARRAYTYPE ){
if (x_5.att_type instanceof ROWTYPE ){
this.att_type=((ARRAYTYPE)loc_t2).getType();
loc_code=this.att_machine.genChargementVariable(((INFOVAR)loc_i));
loc_code=loc_code+x_5.att_code+"SUBR IADD ; \n";
loc_t1=((ARRAYTYPE)loc_t2).getType();
if ((this.att_gauche)){
this.att_code=loc_code+this.att_machine.genEnregistrementMemoire(loc_t1.getTaille());
}
else {
this.att_code=loc_code+this.att_machine.genChargmentMemoire(loc_t1.getTaille());
}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_indice_range, MOCMessages.indice_range,new Object[]{""+x_5.att_type.toString()});


}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_pas_tableau, MOCMessages.pas_tableau,new Object[]{""+loc_t2.toString()});


}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_pas_tableau, MOCMessages.pas_tableau,new Object[]{""+loc_t.toString()});


}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_pas_variable, MOCMessages.pas_variable,new Object[]{""+x_2.att_txt});


}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_pas_declare, MOCMessages.pas_declare,new Object[]{""+x_2.att_txt});

}
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#code","F -> ident cro #sens E crf #code ;"});
}
  }
private void action_code_57(S_OPUN_MOC x_2, S_F_MOC x_3) throws Exception {
try {
// instructions
if (x_3.att_type instanceof INTEGERTYPE ){
this.att_type=((INTEGERTYPE)x_3.att_type);
this.att_code=x_3.att_code+this.att_machine.genOperation(x_2.att_op);
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_Type_non_conformes, MOCMessages.Type_non_conformes,new Object[]{""+"int", ""+x_3.att_type.toString()});


}
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#code","F -> OPUN F1 #code ;"});
}
  }
private void action_code_67(S_TYPE_MOC x_3) throws Exception {
try {
// instructions
this.att_type= new POINTEURTYPE(x_3.att_type);
this.att_code=this.att_machine.genAlloc(x_3.att_type.getTaille());
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#code","F -> new TYPE paro parf #code ;"});
}
  }
private void action_code_65(T_MOC x_2) throws Exception {
try {
// locales
INFO loc_info;
DTYPE loc_t;
// instructions
loc_info=this.att_tds.chercherGlobalement(x_2.att_txt);
if (loc_info instanceof INFOVAR ){
loc_t=((INFOVAR)loc_info).getType();
this.att_type=loc_t;
if ((this.att_gauche)){
this.att_code=this.att_machine.genEnregistrementVariable(((INFOVAR)loc_info));
}
else {
this.att_code=this.att_machine.genChargementVariable(((INFOVAR)loc_info));
}
}
else {
att_scanner._interrompre(IProblem.Semantic, att_scanner.getBeginLine(), IMOCMessages.id_IdNonDeclare, MOCMessages.IdNonDeclare,new Object[]{""+x_2.att_txt});


}
}catch(RuntimeException e) {       att_scanner._interrompre(IProblem.Internal,att_scanner.getBeginLine(),ICoreMessages.id_EGG_runtime_error, CoreMessages.EGG_runtime_error,new Object[] { "MOC", "#code","F -> ident #code ;"});
}
  }
  public void analyser () throws Exception {
    scanner.lit ( 1 ) ;
    switch ( scanner.fenetre[0].code ) {
      case LEX_MOC.token_entier : // 3887
        regle54 () ;
      break ;
      case LEX_MOC.token_chaine : // 3889
        regle55 () ;
      break ;
      case LEX_MOC.token_caractere : // 3888
        regle56 () ;
      break ;
      case LEX_MOC.token_plus : // 3875
        regle57 () ;
      break ;
      case LEX_MOC.token_moins : // 3876
        regle57 () ;
      break ;
      case LEX_MOC.token_non : // 3882
        regle57 () ;
      break ;
      case LEX_MOC.token_null : // 3867
        regle61 () ;
      break ;
      case LEX_MOC.token_paro : // 3852
        scanner.lit ( 2 ) ;
        switch ( scanner.fenetre[1].code ) {
          case LEX_MOC.token_entier : // 3887
            regle62 () ;
          break ;
          case LEX_MOC.token_chaine : // 3889
            regle62 () ;
          break ;
          case LEX_MOC.token_caractere : // 3888
            regle62 () ;
          break ;
          case LEX_MOC.token_plus : // 3875
            regle62 () ;
          break ;
          case LEX_MOC.token_moins : // 3876
            regle62 () ;
          break ;
          case LEX_MOC.token_non : // 3882
            regle62 () ;
          break ;
          case LEX_MOC.token_null : // 3867
            regle62 () ;
          break ;
          case LEX_MOC.token_paro : // 3852
            regle62 () ;
          break ;
          case LEX_MOC.token_ident : // 3890
            regle62 () ;
          break ;
          case LEX_MOC.token_mult : // 3878
            regle62 () ;
          break ;
          case LEX_MOC.token_new : // 3883
            regle62 () ;
          break ;
          case LEX_MOC.token_libere : // 3884
            regle62 () ;
          break ;
          case LEX_MOC.token_void : // 3862
            regle63 () ;
          break ;
          case LEX_MOC.token_int : // 3864
            regle63 () ;
          break ;
          case LEX_MOC.token_char : // 3865
            regle63 () ;
          break ;
          default :
                   scanner._interrompre(IProblem.Syntax, scanner.getBeginLine(), IMOCMessages.id_MOC_unexpected_token,MOCMessages.MOC_unexpected_token,new String[]{scanner.fenetre[1].getNom()});
scanner.accepter_sucre(LEX_MOC.token_paro);
        }
      break ;
      case LEX_MOC.token_ident : // 3890
        scanner.lit ( 2 ) ;
        switch ( scanner.fenetre[1].code ) {
          case LEX_MOC.token_paro : // 3852
            regle64 () ;
          break ;
          case LEX_MOC.token_mult : // 3878
            regle65 () ;
          break ;
          case LEX_MOC.token_div : // 3879
            regle65 () ;
          break ;
          case LEX_MOC.token_mod : // 3880
            regle65 () ;
          break ;
          case LEX_MOC.token_et : // 3881
            regle65 () ;
          break ;
          case LEX_MOC.token_parf : // 3853
            regle65 () ;
          break ;
          case LEX_MOC.token_plus : // 3875
            regle65 () ;
          break ;
          case LEX_MOC.token_moins : // 3876
            regle65 () ;
          break ;
          case LEX_MOC.token_ou : // 3877
            regle65 () ;
          break ;
          case LEX_MOC.token_inf : // 3869
            regle65 () ;
          break ;
          case LEX_MOC.token_sup : // 3871
            regle65 () ;
          break ;
          case LEX_MOC.token_infeg : // 3870
            regle65 () ;
          break ;
          case LEX_MOC.token_supeg : // 3872
            regle65 () ;
          break ;
          case LEX_MOC.token_neg : // 3874
            regle65 () ;
          break ;
          case LEX_MOC.token_eg : // 3873
            regle65 () ;
          break ;
          case LEX_MOC.token_affect : // 3858
            regle65 () ;
          break ;
          case LEX_MOC.token_virg : // 3856
            regle65 () ;
          break ;
          case LEX_MOC.token_crf : // 3886
            regle65 () ;
          break ;
          case LEX_MOC.token_pv : // 3857
            regle65 () ;
          break ;
          case LEX_MOC.token_cro : // 3885
            regle68 () ;
          break ;
          default :
                   scanner._interrompre(IProblem.Syntax, scanner.getBeginLine(), IMOCMessages.id_MOC_unexpected_token,MOCMessages.MOC_unexpected_token,new String[]{scanner.fenetre[1].getNom()});
scanner.accepter_sucre(LEX_MOC.token_ident);
        }
      break ;
      case LEX_MOC.token_mult : // 3878
        regle66 () ;
      break ;
      case LEX_MOC.token_new : // 3883
        regle67 () ;
      break ;
      default :
               scanner._interrompre(IProblem.Syntax, scanner.getBeginLine(), IMOCMessages.id_MOC_unexpected_token,MOCMessages.MOC_unexpected_token,new String[]{scanner.fenetre[0].getNom()});
    }
  }
  }
